﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ASBCC.Database.EntityFramework;

namespace ASBCC.Business
{
    public static class RoleAssginmentHelper
    {
        //public static List<UserRolesInfo> GetUserRolesInfo()
        //{
        //    List<UserRolesInfo> urs = new List<UserRolesInfo>();

        //    using (var db = new CCEntities())
        //    {
        //        var users = db.Employee.Where(e =>
        //            (e.Roles.FirstOrDefault(r => (r.Disabled == false && r.IsAdmin)) != null)
        //            );

        //        foreach (var u in users)
        //        {
        //            u.Roles.Load();
        //            UserRolesInfo uri = new UserRolesInfo();
        //            uri.UserNo = u.EmployeeNo;
        //            uri.UserNameEN = u.NameEN;
        //            foreach (var r in u.Roles.Where(p => p.IsAdmin)){
        //                uri.Roles.Add(r.Name);
        //                uri.RoleIDs.Add(r.RoleID.ToString());
        //            }

        //            uri.RolesStr = string.Join(",", uri.Roles.ToArray());
        //            uri.RolesIDStr = string.Join(",", uri.RoleIDs.ToArray());
        //            urs.Add(uri);
        //        }

        //    }
        //    return urs;
        //}


        //public static List<AdminRoleInfo> GetAdminRolesInfo()
        //{
        //    List<AdminRoleInfo> aris = new List<AdminRoleInfo>();

        //    using (var db = new CCEntities())
        //    {
        //        var a_roles = db.RoleSet.Where(r => (r.Disabled == false && r.IsAdmin));
        //        foreach (var r in a_roles)
        //        {
        //            AdminRoleInfo ari = new AdminRoleInfo();
        //            ari.RoleID = r.RoleID;
        //            ari.RoleName = r.Name;
        //            ari.RoleDiscription = r.Description;
        //            ari.RoleBelongsTo = r.BelongsTo;

        //            aris.Add(ari);
        //        }
        //    }

        //    return aris;
        //}

        //public static void SetUserRoles(string EmployeeNo , List<int> RoleIDs)
        //{
        //    if (string.IsNullOrEmpty(EmployeeNo)) return;

        //    using (var db = new CCEntities())
        //    {
        //        //var roles = db.sp_deleteRolesByEmployeeNo(EmployeeNo,"Admin");
        //        foreach (var rid in RoleIDs)
        //        {
        //            db.sp_addRoleToEmployeeNo(rid, EmployeeNo);
        //        }
        //    }
            
        //}
    }

    


    //public class UserRolesInfo
    //{
    //    public UserRolesInfo()
    //    {
    //        Roles = new List<string>();
    //        RoleIDs = new List<string>();
    //    }
    //    public string UserNo { get; set; }
    //    public string UserNameEN { get; set; }
    //    public string RolesStr { get; set; }
    //    public string RolesIDStr { get; set; }
    //    public List<string> Roles { get; set; }
    //    public List<string> RoleIDs { get; set; }
    //}    
    
    //public class AdminRoleInfo
    //{
    //    public int RoleID {get;set;}
    //    public string RoleName{get;set;}
    //    public string RoleDiscription { get; set; }
    //    public string RoleBelongsTo { get; set; }
    //}

}
